﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using IBatisNet.DataMapper;
using TumbaloSoft.Helpers.QueryObjects;
using TumbaloSoft.Models;

namespace TumbaloSoft.Helpers
{
    public class HelperProveedor
    {

        public static int insert(TumbaloSoft.Models.Proveedor proveedor)
        {
            Mapper.Instance().Insert("ProveedorInsert", proveedor);
            return 0;
        }

        public static int insertNatural(TumbaloSoft.Models.Proveedor proveedor)
        {
            Mapper.Instance().Insert("ProveedorInsertNatural", proveedor);
            return 0;
        }

        public static int insertJuridica(TumbaloSoft.Models.Proveedor proveedor)
        {
            Mapper.Instance().Insert("ProveedorInsertJuridico", proveedor);
            return 0;
        }

        public static int selectMaxCodigo()
        {
            return (int)Mapper.Instance().QueryForObject("ProveedorSelectMaxCodigo", null);
        }

        public static IList selectAllActivo()
        {
            return Mapper.Instance().QueryForList("ProveedorSelectAllActivo", null);
        }


        public static Proveedor selectById(int id)
        {

            IList proveedores = Mapper.Instance().QueryForList("ProveedorSelectById", id);
            if (proveedores.Count == 0) return null;
            Proveedor proveedor = (Proveedor)(proveedores[0]);


            return proveedor;
        }


        public static int deleteProveedor(TumbaloSoft.Models.Proveedor proveedor)
        {            

            Mapper.Instance().Delete("ProveedorDelete", proveedor);

            return 0;
        }

        public static int updateProveedor(TumbaloSoft.Models.Proveedor proveedor)
        {

            Mapper.Instance().Update("ProveedorUpdate", proveedor);

            return 0;
        }


        public static IList buscarProveedorNatural(BusquedaProveedor proveedor)
        {
            try { return Mapper.Instance().QueryForList("ProveedorBuscarNatural", proveedor); }
            catch { return null; }
        }

        public static IList buscarProveedorJuridico(BusquedaProveedor proveedor)
        {
            try { return Mapper.Instance().QueryForList("ProveedorBuscarJuridico", proveedor); }
            catch { return null; }

        }

    }
}